package com.hmdp.interceptors;

import com.hmdp.utils.UserHolder;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginInterceptor implements HandlerInterceptor {

    private StringRedisTemplate redisTemplate;


    public LoginInterceptor(StringRedisTemplate redisTemplate) {
        this.redisTemplate = redisTemplate;
    }

    /**
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {


        // 1. 判断是否需要拦截 （ThreadLocal 中是否有用户）
        if(UserHolder.getUser() == null ){
            // 没有 需要拦截， 设置状态码
            response.setStatus(HttpStatus.UNAUTHORIZED.value());
            // 拦截
            return false;
        }
        // 放行
        return true;
    }



}
